/*
 * Mario.h
 *
 *  Created on: 17/11/2014
 *      Author: sisop
 */

#ifndef ELEMENTO_MARIO_H_
#define ELEMENTO_MARIO_H_

#include "Elemento.h"

namespace std {

class Mario: public Elemento {
private:
	short int vidas;
	unsigned long  int puntos;
	bool inmune;
public:
	Mario(short int id,unsigned short int idImagen, int posX, int posY, int alto, int ancho, unsigned char tipo, bool vivo, short int vidas, int puntos);
	virtual ~Mario();

	/* Getters */
	bool isInmune();
	short int getVidas();
	int getPuntos();

	/* Setters */
	void setInmune(bool inmune);

	/* Metodo de creacion */
	unsigned short int aparecer();
	/* Metodo de destruccion */
	unsigned short int desaparecer();
	/* Metodo de consumicion de martillos */
	unsigned short int consumirMartillo();
	/* Pisa el metodo moverse del elemento estandar, para cambiar el vidrio tambien */
	void moverse(int offsetX, int offsetY);
	/* Metodo para quitarle una vida a mario */
	void restarVida();
	//Suma puntos por ventana arreglada o martillo tomada.
	unsigned short int sumarPuntos(int puntos);
};

} /* namespace std */

#endif /* ELEMENTO_MARIO_H_ */
